home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / tos / g__~1 / tests09.zoo / tests / expected.out next >
Encoding:
Text File  |  1993-03-02  |  23.4 KB  |  699 lines

  1. tfile
  2. Hello, world via cout
  3. enter a char:c = "a"
  4. enter three integers (short, int, long):first  = 123 via dec =      123
  5. second = 4567 via form = 4567 = 010727 via cout.form = 4567 = 0x11d7
  6. third  = 89012 via hex = 15bb4
  7. enter a float then a double:first  = 123.456
  8. second = -0.012
  9. enter 5 characters separated with spaces:first  = 1
  10. rest   =  2 3 4 5
  11.  
  12. Making streams sout and sin...contents of file:
  13. Thisfilehasonelinetestingoutputstreams.
  14. Making File tf ... first line of file:
  15. This is the first and only line of this file.
  16. next char = 10
  17. reopening tempfile, appending: Now there is a second line.
  18. First 10 chars via raw system read after reopen for input:
  19. This is th
  20. Contents after raw lseek to pos 5:
  21. is the first and only line of this file.
  22. Now there is a second line.
  23.  
  24. Making SFile rf...odd elements of file in reverse order:
  25. (i = 9 c = j d = 0.009)
  26. (i = 7 c = h d = 0.007)
  27. (i = 5 c = f d = 0.005)
  28. (i = 3 c = d d = 0.003)
  29. (i = 1 c = b d = 0.001)
  30.  
  31. Making PlotFile pf ...(You may delete or attempt to plot plot.out)
  32. creating ostrstream...
  33. with contents:
  34. This is a string-based stream.
  35. With two lines.
  36. using it to create istrstream...
  37. with contents:
  38. This is a string-based stream.
  39. With two lines.
  40.  
  41. Making filebuf streams fout and fin...contents of file:
  42. Thisfilehasonelinetestingoutputstreams.
  43.  
  44. Final names & states:
  45. cin:      (stdin)    0
  46. cout:     (stdout)    0
  47. cerr:     (stderr)    0
  48.  
  49. end of test.
  50. tobstack
  51. enter anything at all, end with an EOF(^D)
  52.  
  53. unique words:
  54. deleted
  55. redundant
  56. with
  57. this
  58. in
  59. words
  60. the
  61. list
  62. simply
  63. should
  64. program
  65. The
  66. Obstacks
  67. for
  68. file
  69. test
  70. simple
  71. a
  72. is
  73. This
  74.  
  75.  
  76. Obstack vars:
  77. alignment_mask = 3
  78. chunk_size = 4080
  79. size = 0
  80. room = 4056
  81.  
  82. end of test
  83. tstring
  84. an empty String:
  85. A string initialized to Hello:Hello
  86. A string initialized to previous string:Hello
  87. A string initialized to previous string.at(1, 2):el
  88. A string initialized to @:@
  89. A string initialized to dec(20):20
  90. n = 20 atoi(n) = 20 atof(n) = 20
  91. z = x + y = Helloworld
  92. x += y; x = Helloworld
  93. y.prepend(x); y = Helloworld
  94. cat(x, y, x, x); x = HelloworldHello
  95. cat(y, x, x, x); x = worldHelloHello
  96. z = x + s +  + y.at(w) + y.after(w) + . = Hello, world.
  97. ch = x[0] = H
  98. z = x.at(2, 3) = llo
  99. x.at(2, 2) = r; x = Hero
  100. x.at(0, 1) = j; x = jello
  101. x.at(He) = je; x = jello
  102. x.at(l, -1) = i; x = Helio
  103. z = x.at(r) = ello
  104. z = x.before(o) = Hell
  105. x.before(ll) = Bri; x = Brillo
  106. z = x.before(2) = He
  107. z = x.after(Hel) = lo
  108. x.after(Hel) = p; x = Help
  109. z = x.after(3) = o
  110. z =   a bc; z = z.after(RXwhite); z =a bc
  111. x.gsub(l, ll); x = Hellllo
  112. x.gsub(r, ...); x = Hello should have been replaced by this string
  113. x.gsub(RXwhite, #); x = Hello#should#have#been#replaced#by#this#string
  114. z = x+y; z.del(loworl); z = Held
  115. reverse(x) = olleH
  116. x.reverse() = olleH
  117. upcase(x) = HELLO
  118. downcase(x) = hello
  119. capitalize(x) = Hello
  120. z = replicate(*, 10) = **********
  121. z = This string    has
  122. five words
  123. from split(z, RXwhite, w, 10), n words = 5:
  124. This
  125. string
  126. has
  127. five
  128. words
  129. z = join(w, nw, /); z =This/string/has/five/words
  130. enter a word:word =abcdefghijklmnopqrstuvwxyz length = 26
  131.  
  132. End of test
  133. tinteger
  134. one = 1
  135. one + 1 = 2
  136. two = 2
  137. fact30 = factorial(30) = 265252859812191058636308480000000
  138. fact28 = factorial(28) = 304888344611713860501504000000
  139. fact30 + fact28 = 265557748156802772496809984000000
  140. fact30 - fact28 = 264947971467579344775806976000000
  141. fact30 * fact28 = 80872505331661933764010628483512781121876047953920000000000000
  142. fact30 / fact28 = 870
  143. fact30 % fact28 = 0
  144. -fact30 = -265252859812191058636308480000000
  145. lg(fact30) = 107
  146. gcd(fact30, fact28) = 304888344611713860501504000000
  147. sqrt(fact30) = 16286585271694955
  148. negfact31 = -8222838654177922817725562880000000
  149. fact30 + negfact31 = -7957585794365731759089254400000000
  150. fact30 - negfact31 = 8488091513990113876361871360000000
  151. fact30 * negfact31 = -2181131468794922353615366650200339706856997013317222400000000000000
  152. fact30 / negfact31 = 0
  153. fact30 % negfact31 = 265252859812191058636308480000000
  154. gcd(fact30, negfact31) = 265252859812191058636308480000000
  155. fib50 = fibonacci(50) = 12586269025
  156. fib48 = fibonacci(48) = 4807526976
  157. fib48 + fib50 = 17393796001
  158. fib48 - fib50 = -7778742049
  159. fib48 * fib50 = 60508827864880718400
  160. fib48 / fib50 = 0
  161. fib48 % fib50 = 4807526976
  162. gcd(fib50, fib48) = 1
  163. sqrt(fib50) = 112188
  164. pow64 = Ipow(2, 64) = 18446744073709551616
  165. lg(pow64) = 64
  166. s64 = 1 << 64 = 18446744073709551616
  167. s32 = s64 >> 32 = 4294967296
  168. comps64 = ~s64 = 18446744073709551615
  169. comps64 & s32 = 4294967296
  170. comps64 | s32 = 18446744073709551615
  171. comps64 ^ s32 = 18446744069414584319
  172.  
  173. enter an Integer: number = 12345678901234567890
  174.  
  175. End of test
  176. trationa
  177. one = 1
  178. third = 1/3
  179. half = 1/2
  180. third + half = 5/6
  181. third - half = -1/6
  182. third * half = 1/6
  183. third / half = 2/3
  184. onePointTwo = 5404319552844595/4503599627370496
  185. double(onePointTwo) = 1.2
  186. a = 1
  187. a += half = 3/2
  188. a -= half = 1
  189. a *= half = 1/2
  190. a /= half = 1
  191. approxpi = 355/113
  192. double(approxpi) = 3.14159
  193. rpi = Rational(PI) = 884279719003555/281474976710656
  194. double(rpi) = 3.14159
  195. approxpi + rpi = 199847224979684595/31806672368304128
  196. approxpi - rpi = 8484881165/31806672368304128
  197. approxpi * rpi = 313919300246262025/31806672368304128
  198. approxpi / rpi = 19984723346456576/19984721649480343
  199. -approxpi = -355/113
  200. abs(negapproxpi) = 355/113
  201.  
  202. enter a Rational in form a/b or a: number = 61727839/49382716
  203. approximating e as pow(1+1/n),n) for n =10
  204. double(approxe) = 2.59374
  205. log(approxe) = 0.953102
  206. approxe = 25937424601/10000000000
  207. approximating e as pow(1+1/n),n) for n =100
  208. double(approxe) = 2.70481
  209. log(approxe) = 0.995033
  210. approxe = 270481382942152609326719471080753083367793838278100277689020104911710151430673927943945601434674459097335651375483564268312519281766832427980496322329650055217977882315938008175933291885667484249510001/100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  211. approximating e as pow(1+1/n),n) for n =1000
  212. double(approxe) = 2.71692
  213. log(approxe) = 0.9995
  214. approxe = 2716923932235892457383088121947577188964315018836572803722354774868894945523768158997885697298661429053421034015406256924859461187617653889457753593083386399572063538500432650176144488046171044844121805479607648086607018742077798375087855857012278053105042704758822511824867218226931719410407150364389665913091822576819072281835735365786202176167228686198158460724641052407506305826211156964723064441295969498221919251479211700941935114755531972677360157561485144237786816579422141378066423317811515462669946309306263409027388915931082226854264858661420878279983534424128672461206356847463821364630504359665171573635397346037274752410368174877433941234543153511100471651472869116068528478976916600585383497180172395573924789047989563714318957536493108041591460911612078698461739084741934442448701416575483263891529095158013233115648534154086009312190489168546024398834243847135102411661996020129557921444666343641039137906807591342742464200991933722791531063202677650581946360422027765645970182463780273161113009717582155489902677095053354207944772439271656447869921825959042801322775729022491402012084605367784456090892987682547811360481731795980637847551788259384243997341190753089343387201753821360405430310320564488741142120089460368986590136324737459372963666586532443570474179352656517635333744783401695951969936296323256525034685525470426185224036844803487442831639483152362831735350269624668701702424450940840884555271325190876102665277858154695092765613639718577127438538649414492678358762110235621776218781360881010654696273264706319088453035858355052988808507775439561385232652305316287705653436727647681405618323757201022946801118770148072424021385261829594248369890171583993147934044232792517118743393217276416179842097554494269012251329134783596037733973478306188255291484352384699871420472711423079586319041837563678498472779422282261024744394844558738378027105699691260086532632930941478779680554645850778168703661423819000515895232903243738763481571999080702098369316199601942246247887808385073821861517636839926907458184604648942036355256683219218129910422822177336785268627274482037476294341444562207197209503659518266210432791078248321015453218019586608696207295299183111963158564162419152742807437346241667671688466998244424726765837682151606230638111654756595917019206453978024157097042546937345673337179165242325399648121877178987723999503839197328183925340949191821443698275476295245249466361817367207248089144718808572152781037112209285944844021186534832159964297181970584453756163204297111185823467744743465840230098261424789313315093951766314459027947176701489215746884363426961577348384651887153140609616362927338107686794499974902581579897076172716541504294334300741444106749994715713419630688719451362658288812132056854807330827050505064714442618243101018812153563795539024370219967801515099970721926240625418512417940854760415566229746248973756297569452302821563467574313259066016089521122779204844875998864114930516063910324359331903843040069467324167490917499501000001/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  215.  
  216. End of test
  217. tcomplex
  218. Complex one = (1, 0)
  219. i = (0, 1)
  220. neg_one = (-1, 0)
  221. sqrt(neg_one) = (0, 1)
  222. a = (2, 3)
  223. b = (4, 5)
  224. a + one = (3, 3)
  225. a - one = (1, 3)
  226. a * one = (2, 3)
  227. a / one = (2, 3)
  228. a + b = (6, 8)
  229. a - b = (-2, -2)
  230. a * b = (-7, 22)
  231. a / b = (0.560976, 0.0487805)
  232. c = a; c += b = (6, 8)
  233. c = a; c -= b = (-2, -2)
  234. c = a; c *= b = (-7, 22)
  235. c = a; c /= b = (0.560976, 0.0487805)
  236. -a = (-2, -3)
  237. real(a) = 2
  238. imag(a) = 3
  239. conj(a) = (2, -3)
  240. norm(a) = 13
  241. abs(a) = 3.60555
  242. arg(a) = 0.982794
  243. cos(a) = (-4.18963, -9.10923)
  244. sin(a) = (9.1545, -4.16891)
  245. cosh(a) = (-3.72455, 0.511823)
  246. sinh(a) = (-3.59056, 0.530921)
  247. log(a) = (1.28247, 0.982794)
  248. exp(a) = (-7.31511, 1.04274)
  249. sqrt(a) = (1.67415, 0.895977)
  250. pow(a, 2) = (-5, 12)
  251. pow(a, b) = (-0.753046, -0.986429)
  252. enter a Complex number in form (a, b) or (a) or a: number = (1.2, -34)
  253.  
  254. End of test
  255. tbitset
  256. BitSet tests:
  257. a = 0*
  258. b = 000000000010*
  259. c = 1010101010101010101010101010101010101010*
  260. c[0] =1
  261. c[1] =0
  262. c[2] =1
  263. c[3] =0
  264. c[4] =1
  265. d = 00110011001100110011001100110011001100110*
  266. e = 1111000011110000111100001111000011110*
  267. u = ~a = 1*
  268. g = ~e = 0000111100001111000011110000111100001*
  269. ~c = 0101010101010101010101010101010101010101*
  270. c & d = 0010001000100010001000100010001000100010*
  271. c | d = 10111011101110111011101110111011101110110*
  272. c - d = 10001000100010001000100010001000100010*
  273. c ^ d = 10011001100110011001100110011001100110010*
  274. f = b = 100000000010*
  275. f &= c = 100000000010*
  276. f |= d = 10110011001100110011001100110011001100110*
  277. f -= e = 00000011000000110000001100000011000000110*
  278. f ^= u = 11111100111111001111110011111100111111001*
  279. h = d
  280. :00110011001100110011001100110011001100110*
  281. h.set(0):
  282. 10110011001100110011001100110011001100110*
  283. h.set(65):
  284. 1011001100110011001100110011001100110011000000000000000000000000010*
  285. h.clear(2):
  286. 1001001100110011001100110011001100110011000000000000000000000000010*
  287. h.invert(11,20):
  288. 1001001100101100110010110011001100110011000000000000000000000000010*
  289. h.set(21,30):
  290. 1001001100101100110011111111111100110011000000000000000000000000010*
  291. h.clear(31, 40):
  292. 1001001100101100110011111111111000000000000000000000000000000000010*
  293. h.test(0,5) = 1
  294. h.test(31,40) = 0
  295. set bits in e:
  296. 0 1 2 3 8 9 10 11 16 17 18 19 24 25 26 27 32 33 34 35 
  297. clear bits in g (reverse order):
  298. 35 34 33 32 27 26 25 24 19 18 17 16 11 10 9 8 3 2 1 0 
  299.  
  300. End of test.
  301. tbitstri
  302. a      = 
  303. b      = 1000000001
  304. c      = 10101010101010101010
  305. d      = 00110011001100110011
  306. e      = 11110000111100001111
  307. f = b  = 1000000001
  308. g = ~e = 00001111000011110000
  309. h = d  = 00110011001100110011
  310. bits in e:
  311. 0 1 2 3 8 9 10 11 16 17 18 19 
  312. clear bits in g (reverse order):
  313. 19 18 17 16 11 10 9 8 3 2 1 0 
  314. ~c     = 01010101010101010101
  315. c & d  = 00100010001000100010
  316. c | d  = 10111011101110111011
  317. c - d  = 10001000100010001000
  318. c ^ d  = 10011001100110011001
  319. c + d  = 1010101010101010101000110011001100110011
  320. c <<2  = 0010101010101010101010
  321. c >>2  = 101010101010101010
  322. f &= c = 1000000000
  323. f |= d = 10110011001100110011
  324. f -= e = 10000000000000000000
  325. f ^= c = 00101010101010101010
  326. f += b = 001010101010101010101000000001
  327. f <<=5 = 00000001010101010101010101000000001
  328. f >>=10= 0101010101010101000000001
  329. l = 101010101010101010100011001100110011001110101010101010101010
  330. BitPattern pat = 0011XXXX0011XXXX0011
  331. pat.pattern    = 00110011001100110011
  332. pat.mask       = 11110000111100001111
  333. l.index(pat)   = 20
  334. l.index(pat,-1)= 20
  335. l.before(pat)  = 10101010101010101010
  336. l.at(pat)      = 00110011001100110011
  337. l.after(pat)   = 10101010101010101010
  338. b.set(0)       :1000000001
  339. b.set(65):
  340. 100000000100000000000000000000000000000000000000000000000000000001
  341. b.clear(2):
  342. 100000000100000000000000000000000000000000000000000000000000000001
  343. b.invert(11,20):
  344. 100000000100111111111000000000000000000000000000000000000000000001
  345. b.set(21,30):
  346. 100000000100111111111111111111100000000000000000000000000000000001
  347. b.clear(31, 40):
  348. 100000000100111111111111111111100000000000000000000000000000000001
  349. b.set(0)       :10110011001100110011
  350. b.set(65):
  351. 101100110011001100110000000000000000000000000000000000000000000001
  352. b.clear(2):
  353. 100100110011001100110000000000000000000000000000000000000000000001
  354. b.invert(11,20):
  355. 100100110010110011001000000000000000000000000000000000000000000001
  356. b.set(21,30):
  357. 100100110010110011001111111111100000000000000000000000000000000001
  358. b.clear(31, 40):
  359. 100100110010110011001111111111100000000000000000000000000000000001
  360. k = 0101
  361. c.before(k) = 1
  362. c.at(k)     = 0101
  363. c.after(k)  = 010101010101010
  364. c.after(k)=k :101010101
  365. c.before(k)=k:010101010101
  366. reverse(k)           = 1010
  367. k.left_trim(0)       : 101
  368. k.right_trim(1)      : 10
  369. k = 0110
  370. c.before(k) = 0
  371. c.at(k)     = 0110
  372. c.after(k)  = 011001100110011
  373. c.after(k)=k :001100110
  374. c.before(k)=k:011001100110
  375. reverse(k)           = 0110
  376. k.left_trim(0)       : 110
  377. k.right_trim(1)      : 110
  378.  
  379. End of test.
  380. trandom
  381. five random ACG integers:
  382. 1525072166 1954057046 3406008937 226879594 4107049426 
  383. five random MLCG integers:
  384. 1341853672 83475514 936613571 888739672 2097844081 
  385. Binomial r1( 100, 0.50, &gen1) ...
  386. five samples:
  387. 45 52 59 49 60 
  388. Statistics for 100 samples:
  389. samples: 100 min: 40 max: 64
  390. mean: 50.78 stdDev: 4.42577 var: 19.5875 confidence(95): 0.878369
  391. Erlang r2( 2.0, 0.5, &gen1) ...
  392. five samples:
  393. 1.79909 1.92989 2.50816 2.31409 1.48158 
  394. Statistics for 100 samples:
  395. samples: 100 min: 0.592645 max: 3.81874
  396. mean: 1.96664 stdDev: 0.696406 var: 0.484981 confidence(95): 0.138213
  397. Geometric r3(&gen1, 0.5)...
  398. five samples:
  399. 3 2 2 2 3 
  400. Statistics for 100 samples:
  401. samples: 100 min: 1 max: 7
  402. mean: 1.9 stdDev: 1.28315 var: 1.64646 confidence(95): 0.254662
  403. HyperGeometric r4( 10.0, 150.0, &gen1)...
  404. five samples:
  405. 15.0752 5.25802 7.82211 20.4995 7.08199 
  406. Statistics for 100 samples:
  407. samples: 100 min: 0.0446068 max: 131.508
  408. mean: 12.6763 stdDev: 16.7567 var: 280.786 confidence(95): 3.32564
  409. NegativeExpntl r5( 1.0, &gen1)...
  410. five samples:
  411. 1.90665 0.0921974 0.219318 1.79202 0.566202 
  412. Statistics for 100 samples:
  413. samples: 100 min: 0.00794624 max: 4.23124
  414. mean: 0.927343 stdDev: 0.8869 var: 0.786592 confidence(95): 0.17602
  415. Normal r6( 0.0, 1.0, &gen1)...
  416. five samples:
  417. -0.174892 0.148871 -0.479753 0.65432 -0.92688 
  418. Statistics for 100 samples:
  419. samples: 100 min: -2.22325 max: 2.61771
  420. mean: 0.141292 stdDev: 0.972041 var: 0.944864 confidence(95): 0.192918
  421. LogNormal r7( 1.0, 1.0, &gen1)...
  422. five samples:
  423. 2.15572 0.985688 0.340019 0.959144 1.06052 
  424. Statistics for 100 samples:
  425. samples: 100 min: 0.0393323 max: 6.16358
  426. mean: 1.03547 stdDev: 0.963892 var: 0.929088 confidence(95): 0.191301
  427. Poisson r8( 2.0, &gen1)...
  428. five samples:
  429. 0 2 1 2 1 
  430. Statistics for 100 samples:
  431. samples: 100 min: 0 max: 5
  432. mean: 2 stdDev: 1.31041 var: 1.71717 confidence(95): 0.260073
  433. DiscreteUniform r9( 0.0, 1.0, &gen1)...
  434. five samples:
  435. 1 1 0 0 0 
  436. Statistics for 100 samples:
  437. samples: 100 min: 0 max: 1
  438. mean: 0.45 stdDev: 0.5 var: 0.25 confidence(95): 0.0992334
  439. Uniform r10( 0.0, 1.0, &gen1)...
  440. five samples:
  441. 0.557314 0.529968 0.997197 0.25163 0.947497 
  442. Statistics for 100 samples:
  443. samples: 100 min: 0.00205286 max: 0.997197
  444. mean: 0.518789 stdDev: 0.321429 var: 0.103317 confidence(95): 0.0637931
  445. Weibull r11( 0.5, 1.0, &gen1)...
  446. five samples:
  447. 10.4918 0.295112 0.184577 2.14799 0.10053 
  448. Statistics for 100 samples:
  449. samples: 100 min: 2.36481e-04 max: 15.4934
  450. mean: 1.96369 stdDev: 2.97642 var: 8.85906 confidence(95): 0.59072
  451. SampleHistogram for 100 Normal samples
  452. < -4 : 0
  453. < -3.2 : 0
  454. < -2.4 : 0
  455. < -1.6 : 7
  456. < -0.8 : 15
  457. < 6.66134e-16 : 36
  458. < 0.8 : 15
  459. < 1.6 : 19
  460. < 2.4 : 7
  461. < 3.2 : 1
  462. < 4 : 0
  463. < max : 0
  464.  
  465. End of test
  466. tfix
  467. Fix: identities should be displayed
  468. [X] displays the precision of a given value
  469. [*] indicates that the full precision is not used for coding reasons
  470. 0 [16] =  0.00000 [16]
  471. .5 [16] =  0.50000 [16]
  472. -.5 [17] = -0.50000 [17]
  473. .1 [33] =  0.10000 [33]
  474. -.5 [17] = -0.50000 [17]
  475. .3 [16] =  0.29999 [16]
  476. .5 [16] =  0.50000 [16]
  477. .1 [16] =  0.09998 [16]
  478. .1 [33*] =  0.09998 [33]
  479. -.2 [17] = -0.20001 [17]
  480. -.5 [17] = -0.50000 [17]
  481. .1 [16] == .1 [33*] = 1
  482. .1 [16] == .1 [33] = 0
  483. .1 [33] != .5 [16] = 1
  484. .1 [33] > .5 [16] = 0
  485. .1 [33] <= -.2 [17] = 0
  486. 1073741824 = 1.07374e+09
  487. .5 = 0.5
  488. .5 [17] =  0.50000 [17]
  489. -.5 [17] = -0.50000 [17]
  490. .1 [33] + .5 [16] =  0.60000 [33]
  491. .1 [33] - .5 [16] = -0.40000 [33]
  492. .1 [33] * .5 [16] =  0.05000 [49]
  493. .1 [33] *  3 =  0.30000 [33]
  494. .1 [33] * -3 = -0.30000 [33]
  495. -.1 [33] *  3 = -0.30000 [33]
  496. -.1 [33] * -3 =  0.30000 [33]
  497. .5 [17] * -2 = -1.00000 [17]
  498. .1 [33] % 25 =  0.10000 [58]
  499. .1 [33] % -25 =  0.09375 [8]
  500. .1 [33] / .5 [16] =  0.20001 [33]
  501. .1 [33] << 1 =  0.20000 [33]
  502. -.1 [33] >> 2 =  0.47500 [33]
  503. abs(-.2) =  0.20001 [17]
  504. abs(.2) =  0.20001 [17]
  505. sgn(-.2) = -1
  506. sgn(.2) = 1
  507.  
  508. show .1 [33]
  509. len = 33
  510. siz = 3
  511. ref = 1
  512. man = ccccccc8000            
  513. val = 0.1
  514.  
  515. Fix: range errors warned
  516. 1.1 [16] =  0.00000 [16]
  517. .5 [16] / .1 [33] =  0.00000 [16]
  518. .5 [16] / 0. [16] =  0.00000 [16]
  519. .5 [17] * 32768 = -1.00000 [17]
  520.  
  521. Fix: overflows saturated
  522. .95 [16] + .1 [33] =  1.00000 [33]
  523. -.1 [33] - .95 [16] = -1.00000 [33]
  524. .5 [17] * 2 =  0.99998 [17]
  525.  
  526. Fix: overflows generate warnings
  527. .95 [16] + .1 [33] = -0.94999 [33]
  528. -.1 [33] - .95 [16] =  0.94999 [33]
  529. .5 [17] * 2 = -0.49994 [17]
  530. tfix16
  531. Fix16: identities should be displayed
  532. 0 = 0
  533. .5 = 0.5
  534. -.5 = -0.5
  535. .1 = 0.100006
  536. .5 = 0.5
  537. .5 = 0.5
  538. .25 = 0.25
  539. 8192 = 8192
  540. .25 = 0.25
  541. .25 = 0.25
  542. .25 = 0.25
  543. -.25 = -0.25
  544. .1 + .5 = 0.600006
  545. .1 - .5 = -0.399994
  546. .1 * .5 = 0.0500031
  547. .1 *  3 = 0.300018
  548. .1 * -3 = -0.300018
  549. .1 / .5 = 0.200012
  550. .1 << 1 = 0.200012
  551. -.5 >> 2 = -0.125
  552. .1 == .5 = 0
  553. .1 != .5 = 1
  554. .1 > .5 = 0
  555. .5 <= -.5 = 0
  556. Fix16: range errors ignored and overflows saturated
  557. 1.1 = 0.999969
  558. .7 + .5 = 0.999969
  559. -.5 - .7 = -1
  560. .5 / .1 = 0.999969
  561. Fix32: identities should be displayed
  562. 0 = 0
  563. .5 = 0.5
  564. -.5 = -0.5
  565. .1 = 0.1
  566. .5 = 0.5
  567. .5 = 0.5
  568. .25 = 0.25
  569. 536870912 = 536870912
  570. .25 = 0.25
  571. .25 = 0.25
  572. .25 = 0.25
  573. -.25 = -0.25
  574. .1 + .5 = 0.6
  575. .1 - .5 = -0.4
  576. .1 * .5 = 0.05
  577. .1 *  3 = 0.3
  578. .1 * -3 = -0.3
  579. .1 / .5 = 0.2
  580. .1 << 1 = 0.2
  581. -.5 >> 2 = -0.125
  582. .1 == .5 = 0
  583. .1 != .5 = 1
  584. .1 > .5 = 0
  585. .5 <= -.5 = 0
  586. Fix32: range errors reported and overflows reported
  587. 1.1 = 1
  588. .7 + .5 = -0.8
  589. -.5 - .7 = 0.8
  590. .5 / .1 = 1
  591. tfix24
  592. Fix24: identities should be displayed
  593. 0 = 0
  594. .5 = 0.5
  595. -.5 = -0.5
  596. .1 = 0.1
  597. .5 = 0.5
  598. .5 = 0.5
  599. .25 = 0.25
  600. 536870912 = 536870912
  601. .25 = 0.25
  602. .25 = 0.25
  603. .25 = 0.25
  604. -.25 = -0.25
  605. .1 + .5 = 0.6
  606. .1 - .5 = -0.4
  607. .1 * .5 = 0.05
  608. .1 *  3 = 0.3
  609. .1 * -3 = -0.3
  610. .1 / .5 = 0.2
  611. .1 << 1 = 0.2
  612. -.5 >> 2 = -0.125
  613. .1 == .5 = 0
  614. .1 != .5 = 1
  615. .1 > .5 = 0
  616. .5 <= -.5 = 0
  617. Fix24: range errors ignored and overflows saturated
  618. 1.1 = 1
  619. .7 + .5 = 1
  620. -.5 - .7 = -1
  621. .5 / .1 = 1
  622. Fix48: identities should be displayed
  623. 0 = 0
  624. .5 = 0.5
  625. -.5 = -0.5
  626. .1 = 0.1
  627. .5 = 0.5
  628. .5 = 0.5
  629. .25 = 0.25
  630. 536870912 = 536870912
  631. 0 = 0
  632. .25 = 0.25
  633. .25 = 0.25
  634. .25 = 0.25
  635. -.25 = -0.25
  636. .1 + .5 = 0.6
  637. .1 - .5 = -0.4
  638. .1 *  3 = 0.3
  639. .1 * -3 = -0.3
  640. .1 << 1 = 0.2
  641. -.5 >> 2 = -0.125
  642. .1 == .5 = 0
  643. .1 != .5 = 1
  644. .1 > .5 = 0
  645. .5 <= -.5 = 0
  646. Fix48: range errors reported and overflows reported
  647. 1.1 = 1
  648. .7 + .5 = -0.8
  649. -.5 - .7 = 0.8
  650. prepending...
  651. a: 9 8 7 6 5 4 3 2 1 0 
  652. appending...
  653. a: 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 
  654. b = a: 
  655. 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 
  656. remove_front of first 10 elements:
  657. b: 0 1 2 3 4 5 6 7 8 9 
  658. inserting 100 after sixth element...
  659. b: 0 1 2 3 4 5 100 6 7 8 9 
  660. after a.join(b)
  661. 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 100 6 7 8 9 
  662. b: 
  663.  
  664. b: 
  665. 999 
  666. bb: 
  667. 999 
  668. prepending...
  669. a: 
  670. 9 8 7 6 5 4 3 2 1 0 
  671. appending...
  672. a: 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 
  673. b = a: 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 
  674. remove_front of first 10 elements:
  675. b: 0 1 2 3 4 5 6 7 8 9 
  676. inserting 100 after sixth element...
  677. b: 0 1 2 3 4 5 100 6 7 8 9 
  678. after aa = a; aa.join(b)
  679. 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 100 6 7 8 9 
  680. b: 
  681.  
  682. b: 
  683. 999 
  684. bb: 
  685. 999 
  686. z = a: 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 
  687. remove_rear of last 10 elements:
  688. z: 9 8 7 6 5 4 3 2 1 0 
  689. inserting 100 before alternate elements...
  690. z: 100 9 100 8 100 7 100 6 100 5 100 4 100 3 100 2 100 1 100 0 
  691. inserting 200 after sixth element...
  692. z: 100 9 100 8 100 7 200 100 6 100 5 100 4 100 3 100 2 100 1 100 0 
  693. deleting alternate elements of z...100 100 100 200 6 5 4 3 2 1 0 
  694. z: 9 8 7 100 100 100 100 100 100 100 
  695. z in reverse order:
  696. 100 100 100 100 100 100 100 7 8 9 
  697.  
  698. End of test
  699.